/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.beans;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletResponse;
import org.apache.myfaces.custom.fileupload.UploadedFile;
import org.cip.esymons.colegiatura.bc.ColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoDeporteDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoEspecialidadDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoImagenDelegate;
import org.cip.esymons.colegiatura.bc.DepartamentoDelegate;
import org.cip.esymons.colegiatura.bc.DireccionDelegate;
import org.cip.esymons.colegiatura.bc.EscuelaDelegate;
import org.cip.esymons.colegiatura.bc.EspCapDelegate;
import org.cip.esymons.colegiatura.bc.EspecialidadDelegate;
import org.cip.esymons.colegiatura.bc.EspecialistaDelegate;
import org.cip.esymons.colegiatura.bc.EstudioColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.ExperienciaLaboralDelegate;
import org.cip.esymons.colegiatura.bc.FacultadDelegate;
import org.cip.esymons.colegiatura.bc.FormacionProfesionalDelegate;
import org.cip.esymons.colegiatura.bc.PersonaJuridicaDelegate;
import org.cip.esymons.colegiatura.bc.PersonaNaturalDelegate;
import org.cip.esymons.colegiatura.bc.ProvinciaDelegate;
import org.cip.esymons.colegiatura.bc.TelefonoDelegate;
import org.cip.esymons.colegiatura.bc.TituloDelegate;
import org.cip.esymons.colegiatura.bc.UniversidadDelegate;
import org.cip.esymons.colegiatura.bc.VinculoColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.solicitanteDelegate;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.colegiatura.be.ColegiadoDeporte;
import org.cip.esymons.colegiatura.be.ColegiadoImagen;
import org.cip.esymons.colegiatura.be.Especialista;
import org.cip.esymons.colegiatura.be.EstudioColegiado;
import org.cip.esymons.colegiatura.be.ExperienciaLaboral;
import org.cip.esymons.colegiatura.be.FormacionProfesional;
import org.cip.esymons.colegiatura.be.TipoImagen;
import org.cip.esymons.colegiatura.be.VinculoColegiado;
import org.cip.esymons.general.be.ColegiadoEspecialidad;
import org.cip.esymons.general.be.DireccionPersona;
import org.cip.esymons.general.be.Escuela;
import org.cip.esymons.general.be.Especialidad;
import org.cip.esymons.general.be.EspecialidadCapitulo;
import org.cip.esymons.general.be.Facultad;
import org.cip.esymons.general.be.PersonaJuridica;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.general.be.TelefonoSolicitante;
import org.cip.esymons.general.be.Titulo;
import org.cip.esymons.general.be.Universidad;
import org.cip.esymons.general.util.ControladorAbstracto;

/**
 *
 * @author WILLIAM GASTAÑUEDI CABALLERO
 */
public class actualizaDatosController {

//DECLARACION DE CLASES.
    private ColegiadoDelegate delegadoColegiado;
    private PersonaJuridicaDelegate delegadoJuridico;
    private FormacionProfesionalDelegate delegadoFormacion;
    private ExperienciaLaboralDelegate delegadoExperiencia;
    private ColegiadoEspecialidadDelegate colEspDelegado;
    private EspCapDelegate espCapDelegado;
    private DireccionDelegate delegadoDireccion;
    private TelefonoDelegate delegadoTelefono;
    private EspecialidadDelegate delegadoEspecialidad;
    private EscuelaDelegate delegadoEscuela;
    private FacultadDelegate delegadoFacultad;
    private UniversidadDelegate delegadoUniversidad;
    private VinculoColegiadoDelegate delegadoVinculo;
    private EstudioColegiadoDelegate delegadoEstudioColegiado;
    private EspecialistaDelegate delegadoEspecialista;
    private ColegiadoDeporteDelegate delegadoColegiadoDeporte;
    private ColegiadoImagenDelegate delegadoImagen;
    private EspCapDelegate delegadoEspCap;
    private PersonaNaturalDelegate delegadoPersonaNatural;
    private TituloDelegate delegadoTitulo;
    private ProvinciaDelegate delegadoProvincia;
    private DepartamentoDelegate delegadoDepartamento;
    private solicitanteDelegate delegadoSolicitante;

    private Colegiado colegiado;
    private PersonaJuridica perJuridica;
    private FormacionProfesional formacion;
    private ExperienciaLaboral experiencia;
    private TelefonoSolicitante telefono,celular,telefonoemp;
    private DireccionPersona direccion;
    private String codigoCip;
    private ColegiadoEspecialidad colEsp;
    private EspecialidadCapitulo espCap;
    private EspecialidadCapitulo espCap2;
    private ColegiadoEspecialidad colEsp2;
    private Titulo titulo;
    private Especialidad especialidad, especial;
    private Escuela escuela;
    private Facultad facultad;
    private Universidad universidad;
    private VinculoColegiado vinculo;
    private EstudioColegiado estudioColegiado;
    private Especialista especialista;
    private ColegiadoDeporte colegiadoDeporte;
    private ColegiadoImagen colImagen,curriculum;
    private TipoImagen tipoImagen;
    private PersonaNatural personaNatural;
    private Integer titCodigo;

    List<ColegiadoEspecialidad> listaColeEspecialidad;
    List<PersonaNatural> listaPersonas;
    List<PersonaNatural> listaPersonasFotos;

    private boolean estado=false,soloColegiados;
    private String id=null;
    private String dni, apepat,apemat,nombre,ruc;
    private String dirCV;
    private boolean bandera;
    private boolean boton;
    private boolean cv;
    private Boolean noHallado;
    private String genCodigo, autoCodigo;
    private boolean activo;

//CONSTRUCTORES.
   public actualizaDatosController() {

        delegadoColegiado = new ColegiadoDelegate();
        delegadoExperiencia = new ExperienciaLaboralDelegate();
        delegadoFormacion = new FormacionProfesionalDelegate();
        delegadoJuridico = new PersonaJuridicaDelegate();
        colEspDelegado = new ColegiadoEspecialidadDelegate();
        espCapDelegado = new EspCapDelegate();
        delegadoDireccion = new DireccionDelegate();
        delegadoTelefono = new TelefonoDelegate();
        delegadoEspecialidad = new EspecialidadDelegate();
        delegadoEscuela = new EscuelaDelegate();
        delegadoFacultad = new FacultadDelegate();
        delegadoUniversidad = new UniversidadDelegate();
        delegadoVinculo = new VinculoColegiadoDelegate();
        delegadoEstudioColegiado = new EstudioColegiadoDelegate();
        delegadoEspecialista = new EspecialistaDelegate();
        delegadoColegiadoDeporte = new ColegiadoDeporteDelegate();
        delegadoImagen = new ColegiadoImagenDelegate();
        delegadoEspCap = new EspCapDelegate();
        delegadoPersonaNatural = new PersonaNaturalDelegate();
        delegadoTitulo = new TituloDelegate();
        delegadoProvincia = new ProvinciaDelegate();
        delegadoDepartamento = new DepartamentoDelegate();
        delegadoSolicitante = new solicitanteDelegate();

        colegiado = new Colegiado();
        perJuridica =  new PersonaJuridica();
        formacion = new FormacionProfesional();
        experiencia = new ExperienciaLaboral();
        telefono = new TelefonoSolicitante();
        celular = new TelefonoSolicitante();
        telefonoemp = new TelefonoSolicitante();
        direccion = new DireccionPersona();        
        colEsp = new ColegiadoEspecialidad();
        espCap = new EspecialidadCapitulo();
        colEsp2 = new ColegiadoEspecialidad();
        espCap2 = new EspecialidadCapitulo();
        titulo = new Titulo();
        especialidad = new Especialidad();
        escuela = new Escuela();
        facultad = new Facultad();
        universidad = new Universidad();
        vinculo = new VinculoColegiado();
        estudioColegiado = new EstudioColegiado();
        especialista = new Especialista();       
        colegiadoDeporte = new ColegiadoDeporte();
        colImagen = new ColegiadoImagen();
        tipoImagen = new TipoImagen();
        especial = new Especialidad();
        personaNatural = new PersonaNatural();
        curriculum = new ColegiadoImagen();

        listaColeEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaPersonas = new ArrayList<PersonaNatural>();
        listaPersonasFotos = new ArrayList<PersonaNatural>();

        dirCV = "/modulos/colegiatura/archivos/curriculum/";
//        dirCV = "D:\\Archivos\\cv\\";
        bandera = false;
        boton = false;
        cv = false;
        activo = false;
        noHallado = false;
    }
//GETTERS AND SETTERS
    public solicitanteDelegate getDelegadoSolicitante() {
        return delegadoSolicitante;
    }

    public void setDelegadoSolicitante(solicitanteDelegate delegadoSolicitante) {
        this.delegadoSolicitante = delegadoSolicitante;
    }

    public List<PersonaNatural> getListaPersonas() {
        return listaPersonas;
    }

    public void setListaPersonas(List<PersonaNatural> listaPersonas) {
        this.listaPersonas = listaPersonas;
    }

    public List<PersonaNatural> getListaPersonasFotos() {
        return listaPersonasFotos;
    }

    public void setListaPersonasFotos(List<PersonaNatural> listaPersonasFotos) {
        this.listaPersonasFotos = listaPersonasFotos;
    }

    public String getApemat() {
        return apemat;
    }

    public void setApemat(String apemat) {
        this.apemat = apemat;
    }

    public String getApepat() {
        return apepat;
    }

    public void setApepat(String apepat) {
        this.apepat = apepat;
    }

    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getRuc() {
        return ruc;
    }

    public void setRuc(String ruc) {
        this.ruc = ruc;
    }

    public boolean getSoloColegiados() {
        return soloColegiados;
    }

    public void setSoloColegiados(boolean soloColegiados) {
        this.soloColegiados = soloColegiados;
    }

    public DepartamentoDelegate getDelegadoDepartamento() {
        return delegadoDepartamento;
    }

    public void setDelegadoDepartamento(DepartamentoDelegate delegadoDepartamento) {
        this.delegadoDepartamento = delegadoDepartamento;
    }

    public ProvinciaDelegate getDelegadoProvincia() {
        return delegadoProvincia;
    }

    public void setDelegadoProvincia(ProvinciaDelegate delegadoProvincia) {
        this.delegadoProvincia = delegadoProvincia;
    }

    public ColegiadoEspecialidad getColEsp2() {
        return colEsp2;
    }

    public void setColEsp2(ColegiadoEspecialidad colEsp2) {
        this.colEsp2 = colEsp2;
    }

    public EspecialidadCapitulo getEspCap2() {
        return espCap2;
    }

    public void setEspCap2(EspecialidadCapitulo espCap2) {
        this.espCap2 = espCap2;
    }

    public List<ColegiadoEspecialidad> getListaColeEspecialidad() {
        return listaColeEspecialidad;
    }

    public void setListaColeEspecialidad(List<ColegiadoEspecialidad> listaColeEspecialidad) {
        this.listaColeEspecialidad = listaColeEspecialidad;
    }

    public TituloDelegate getDelegadoTitulo() {
        return delegadoTitulo;
    }

    public void setDelegadoTitulo(TituloDelegate delegadoTitulo) {
        this.delegadoTitulo = delegadoTitulo;
    }

    public Integer getTitCodigo() {
        return titCodigo;
    }

    public void setTitCodigo(Integer titCodigo) {
        this.titCodigo = titCodigo;
    }

    public Titulo getTitulo() {
        return titulo;
    }

    public void setTitulo(Titulo titulo) {
        this.titulo = titulo;
    }

    public Boolean getNoHallado() {
        return noHallado;
    }

    public void setNoHallado(Boolean noHallado) {
        this.noHallado = noHallado;
    }

    public ColegiadoImagen getCurriculum() {
        return curriculum;
    }

    public void setCurriculum(ColegiadoImagen curriculum) {
        this.curriculum = curriculum;
    }

    public String getDirCV() {
        return dirCV;
    }

    public void setDirCV(String dirCV) {
        this.dirCV = dirCV;
    }

    public boolean getActivo() {
        return activo;
    }

    public void setActivo(boolean activo) {
        this.activo = activo;
    }

    public String getAutoCodigo() {
        return autoCodigo;
    }

    public void setAutoCodigo(String autoCodigo) {
        this.autoCodigo = autoCodigo;
    }

    public String getGenCodigo() {
        return genCodigo;
    }

    public void setGenCodigo(String genCodigo) {
        this.genCodigo = genCodigo;
    }

    public PersonaNaturalDelegate getDelegadoPersonaNatural() {
        return delegadoPersonaNatural;
    }

    public void setDelegadoPersonaNatural(PersonaNaturalDelegate delegadoPersonaNatural) {
        this.delegadoPersonaNatural = delegadoPersonaNatural;
    }

    public PersonaNatural getPersonaNatural() {
        return personaNatural;
    }

    public void setPersonaNatural(PersonaNatural personaNatural) {
        this.personaNatural = personaNatural;
    }

    public Especialidad getEspecial() {
        return especial;
    }

    public void setEspecial(Especialidad especial) {
        this.especial = especial;
    }

    public EspCapDelegate getDelegadoEspCap() {
        return delegadoEspCap;
    }

    public void setDelegadoEspCap(EspCapDelegate delegadoEspCap) {
        this.delegadoEspCap = delegadoEspCap;
    }

    public boolean getCv() {
        return cv;
    }

    public void setCv(boolean cv) {
        this.cv = cv;
    }

    public boolean getBoton() {
        return boton;
    }

    public void setBoton(boolean boton) {
        this.boton = boton;
    }

    public TipoImagen getTipoImagen() {
        return tipoImagen;
    }

    public void setTipoImagen(TipoImagen tipoImagen) {
        this.tipoImagen = tipoImagen;
    }

    public ColegiadoImagen getColImagen() {
        return colImagen;
    }

    public void setColImagen(ColegiadoImagen colImagen) {
        this.colImagen = colImagen;
    }

    public ColegiadoImagenDelegate getDelegadoImagen() {
        return delegadoImagen;
    }

    public void setDelegadoImagen(ColegiadoImagenDelegate delegadoImagen) {
        this.delegadoImagen = delegadoImagen;
    }

    public TelefonoSolicitante getCelular() {
        return celular;
    }

    public void setCelular(TelefonoSolicitante celular) {
        this.celular = celular;
    }

    public Colegiado getColegiado() {
        return colegiado;
    }

    public void setColegiado(Colegiado colegiado) {
        this.colegiado = colegiado;
    }

    public ColegiadoDelegate getDelegadoColegiado() {
        return delegadoColegiado;
    }

    public void setDelegadoColegiado(ColegiadoDelegate delegadoColegiado) {
        this.delegadoColegiado = delegadoColegiado;
    }

    public ExperienciaLaboralDelegate getDelegadoExperiencia() {
        return delegadoExperiencia;
    }

    public void setDelegadoExperiencia(ExperienciaLaboralDelegate delegadoExperiencia) {
        this.delegadoExperiencia = delegadoExperiencia;
    }

    public FormacionProfesionalDelegate getDelegadoFormacion() {
        return delegadoFormacion;
    }

    public void setDelegadoFormacion(FormacionProfesionalDelegate delegadoFormacion) {
        this.delegadoFormacion = delegadoFormacion;
    }

    public PersonaJuridicaDelegate getDelegadoJuridico() {
        return delegadoJuridico;
    }

    public void setDelegadoJuridico(PersonaJuridicaDelegate delegadoJuridico) {
        this.delegadoJuridico = delegadoJuridico;
    }

    public DireccionPersona getDireccion() {
        return direccion;
    }

    public void setDireccion(DireccionPersona direccion) {
        this.direccion = direccion;
    }
    
    public ExperienciaLaboral getExperiencia() {
        return experiencia;
    }

    public void setExperiencia(ExperienciaLaboral experiencia) {
        this.experiencia = experiencia;
    }

    public FormacionProfesional getFormacion() {
        return formacion;
    }

    public void setFormacion(FormacionProfesional formacion) {
        this.formacion = formacion;
    }

    public PersonaJuridica getPerJuridica() {
        return perJuridica;
    }

    public void setPerJuridica(PersonaJuridica perJuridica) {
        this.perJuridica = perJuridica;
    }

    public TelefonoSolicitante getTelefono() {
        return telefono;
    }

    public void setTelefono(TelefonoSolicitante telefono) {
        this.telefono = telefono;
    }

    public TelefonoSolicitante getTelefonoemp() {
        return telefonoemp;
    }

    public void setTelefonoemp(TelefonoSolicitante telefonoemp) {
        this.telefonoemp = telefonoemp;
    }

    public String getCodigoCip() {
        return codigoCip;
    }

    public void setCodigoCip(String codigoCip) {
        this.codigoCip = codigoCip;
    }

    public ColegiadoEspecialidad getColEsp() {
        return colEsp;
    }

    public void setColEsp(ColegiadoEspecialidad colEsp) {
        this.colEsp = colEsp;
    }

    public ColegiadoEspecialidadDelegate getColEspDelegado() {
        return colEspDelegado;
    }

    public void setColEspDelegado(ColegiadoEspecialidadDelegate colEspDelegado) {
        this.colEspDelegado = colEspDelegado;
    }

    public EspecialidadCapitulo getEspCap() {
        return espCap;
    }

    public void setEspCap(EspecialidadCapitulo espCap) {
        this.espCap = espCap;
    }

    public EspCapDelegate getEspCapDelegado() {
        return espCapDelegado;
    }

    public void setEspCapDelegado(EspCapDelegate espCapDelegado) {
        this.espCapDelegado = espCapDelegado;
    }

    public DireccionDelegate getDelegadoDireccion() {
        return delegadoDireccion;
    }

    public void setDelegadoDireccion(DireccionDelegate delegadoDireccion) {
        this.delegadoDireccion = delegadoDireccion;
    }

    public TelefonoDelegate getDelegadoTelefono() {
        return delegadoTelefono;
    }

    public void setDelegadoTelefono(TelefonoDelegate delegadoTelefono) {
        this.delegadoTelefono = delegadoTelefono;
    }

    public EscuelaDelegate getDelegadoEscuela() {
        return delegadoEscuela;
    }

    public void setDelegadoEscuela(EscuelaDelegate delegadoEscuela) {
        this.delegadoEscuela = delegadoEscuela;
    }

    public EspecialidadDelegate getDelegadoEspecialidad() {
        return delegadoEspecialidad;
    }

    public void setDelegadoEspecialidad(EspecialidadDelegate delegadoEspecialidad) {
        this.delegadoEspecialidad = delegadoEspecialidad;
    }

    public Especialidad getEspecialidad() {
        return especialidad;
    }

    public void setEspecialidad(Especialidad especialidad) {
        this.especialidad = especialidad;
    }

    public Escuela getEscuela() {
        return escuela;
    }

    public void setEscuela(Escuela escuela) {
        this.escuela = escuela;
    }

    public FacultadDelegate getDelegadoFacultad() {
        return delegadoFacultad;
    }

    public void setDelegadoFacultad(FacultadDelegate delegadoFacultad) {
        this.delegadoFacultad = delegadoFacultad;
    }

    public Facultad getFacultad() {
        return facultad;
    }

    public void setFacultad(Facultad facultad) {
        this.facultad = facultad;
    }

    public UniversidadDelegate getDelegadoUniversidad() {
        return delegadoUniversidad;
    }

    public void setDelegadoUniversidad(UniversidadDelegate delegadoUniversidad) {
        this.delegadoUniversidad = delegadoUniversidad;
    }

    public Universidad getUniversidad() {
        return universidad;
    }

    public void setUniversidad(Universidad universidad) {
        this.universidad = universidad;
    }

    public VinculoColegiadoDelegate getDelegadoVinculo() {
        return delegadoVinculo;
    }

    public void setDelegadoVinculo(VinculoColegiadoDelegate delegadoVinculo) {
        this.delegadoVinculo = delegadoVinculo;
    }

    public VinculoColegiado getVinculo() {
        return vinculo;
    }

    public void setVinculo(VinculoColegiado vinculo) {
        this.vinculo = vinculo;
    }

    public EstudioColegiadoDelegate getDelegadoEstudioColegiado() {
        return delegadoEstudioColegiado;
    }

    public void setDelegadoEstudioColegiado(EstudioColegiadoDelegate delegadoEstudioColegiado) {
        this.delegadoEstudioColegiado = delegadoEstudioColegiado;
    }

    public EstudioColegiado getEstudioColegiado() {
        return estudioColegiado;
    }

    public void setEstudioColegiado(EstudioColegiado estudioColegiado) {
        this.estudioColegiado = estudioColegiado;
    }

    public EspecialistaDelegate getDelegadoEspecialista() {
        return delegadoEspecialista;
    }

    public void setDelegadoEspecialista(EspecialistaDelegate delegadoEspecialista) {
        this.delegadoEspecialista = delegadoEspecialista;
    }

    public Especialista getEspecialista() {
        return especialista;
    }

    public void setEspecialista(Especialista especialista) {
        this.especialista = especialista;
    }   

    public boolean getEstado() {
        return estado;       
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public ColegiadoDeporte getColegiadoDeporte() {
        return colegiadoDeporte;
    }

    public void setColegiadoDeporte(ColegiadoDeporte colegiadoDeporte) {
        this.colegiadoDeporte = colegiadoDeporte;
    }

    public ColegiadoDeporteDelegate getDelegadoColegiadoDeporte() {
        return delegadoColegiadoDeporte;
    }

    public void setDelegadoColegiadoDeporte(ColegiadoDeporteDelegate delegadoColegiadoDeporte) {
        this.delegadoColegiadoDeporte = delegadoColegiadoDeporte;
    }

    public boolean getBandera() {
        return bandera;
    }

    public void setBandera(boolean bandera) {
        this.bandera = bandera;
    }
//METODO QUE PERMITE VER LA FECHA DE HABILIDAD Y ACTUALIZAR SU ESTADO DE HABILITADO.
    public String verHabilidad(){

        String MesActual,MesHabil,yearActual,yearHabil;
        Integer MA,MH,YA,YH;

        MesActual= null; MesHabil= null; yearActual= null; yearHabil= null;
        MA = null; MH=null; YA=null; YH=null;

        SimpleDateFormat ma = new SimpleDateFormat("MM");
        MesActual = ma.format(new Date());
        SimpleDateFormat ya = new SimpleDateFormat("yyyy");
        yearActual = ya.format(new Date());

        SimpleDateFormat mh = new SimpleDateFormat("MM");
        MesHabil = mh.format(colegiado.getColfechaHabilidad());
        SimpleDateFormat yh = new SimpleDateFormat("yyyy");
        yearHabil = yh.format(colegiado.getColfechaHabilidad());
        
        MA = Integer.parseInt(MesActual);
        YA = Integer.parseInt(yearActual);
        MH = Integer.parseInt(MesHabil);
        YH = Integer.parseInt(yearHabil);        
       
        if(YA>YH){
            colegiado.setColCondicion(false);
            delegadoColegiado.edit(colegiado);            
        }else{
            if(MA>MH){
                colegiado.setColCondicion(false);
                delegadoColegiado.edit(colegiado);                
            }else{
                colegiado.setColCondicion(true);
                delegadoColegiado.edit(colegiado);                
            }
        }        
        return null;
    }
//METODO QUE PERMITE BUSCAR UN COLEGIADO POR SU NUMERO DE CIP Y CARGAR LOS DATOS
//DEL COELGIADO EN EL FORMULARIO DE ACTUALIZACION DE DATOS.
    public String buscaPorCip(){
     
     try{
        colegiado = new Colegiado();
        perJuridica =  new PersonaJuridica();
        personaNatural = new PersonaNatural();
        formacion = new FormacionProfesional();
        experiencia = new ExperienciaLaboral();
        telefono = new TelefonoSolicitante();
        celular = new TelefonoSolicitante();
        telefonoemp = new TelefonoSolicitante();
        direccion = new DireccionPersona();
        colEsp = new ColegiadoEspecialidad();
        espCap = new EspecialidadCapitulo();
        titulo = new Titulo();
        especialidad = new Especialidad();
        escuela = new Escuela();
        facultad = new Facultad();
        universidad = new Universidad();
        vinculo = new VinculoColegiado();
        estudioColegiado = new EstudioColegiado();
        especialista = new Especialista();
        colegiadoDeporte = new ColegiadoDeporte();
        id = "Personal";

         Integer cifras = codigoCip.length();
             if(cifras<3){
                 codigoCip = "0000"+ codigoCip;
             }else{
                   if(cifras<4){
                       codigoCip = "000"+codigoCip;
                   }else{
                       if(cifras<5){
                           codigoCip = "00"+codigoCip;
                       }else{
                           if(cifras<6){
                              codigoCip = "0"+codigoCip;
                           }
                           }
                       }
                   }             

        colegiado = delegadoColegiado.buscaPorCip(codigoCip);
        if(colegiado.getColnumeroCip()!= null){
            personaNatural = delegadoPersonaNatural.buscarXDni(colegiado.getPersonaNatural().getPerNroDNI());
            codigoCip = null;
//            cambiaBandera();
            if(colegiado.getTipoColegiado().getTcoCodigo() != 2 || colegiado.getTipoColegiado().getTcoCodigo() != 4){
               if(colegiado.getColfechaHabilidad()!= null){
                   verHabilidad();
               }
            }
            if(colegiado.getTipoColegiado().getTcoCodigo()==3){
               buscaTituloExtranjero();
               buscaDireccion();
               getListaTelefonos();
               getListaColESp();
               return "ir_a_actualizar";
            }else{
                 buscaColEsp();
                 buscaDireccion();
                 buscaTituloExtranjero();
//                 buscaUniversidad();
                 getListaTelefonos();
                 getListaColESp();
                 buscaCV();
                 return "ir_a_actualizar";
            }
        }else{
            codigoCip = null;
            inicializa();
            mostrarMensaje("Advertencia", "El codigo cip no existe...", FacesMessage.SEVERITY_INFO);
            return null;
        }
        
        }catch(Exception ex){
            mostrarMensaje("Advertencia", "El codigo cip no existe...", FacesMessage.SEVERITY_INFO);
            inicializa();
            return null;
        }

    }

    public String cambiaBandera(){

        try{
          if(bandera==true){
                bandera = false;
                colegiado = new Colegiado();
                perJuridica =  new PersonaJuridica();
                personaNatural = new PersonaNatural();
                formacion = new FormacionProfesional();
                experiencia = new ExperienciaLaboral();
                telefono = new TelefonoSolicitante();
                celular = new TelefonoSolicitante();
                telefonoemp = new TelefonoSolicitante();
                direccion = new DireccionPersona();
                colEsp = new ColegiadoEspecialidad();
                espCap = new EspecialidadCapitulo();
                titulo = new Titulo();
                especialidad = new Especialidad();
                escuela = new Escuela();
                facultad = new Facultad();
                universidad = new Universidad();
                vinculo = new VinculoColegiado();
                estudioColegiado = new EstudioColegiado();
                especialista = new Especialista();
                colegiadoDeporte = new ColegiadoDeporte();
                id = "Personal";

                return null;
          }else{
                bandera=true;
                return null;
          }
        }catch(Exception ex){
            return null;
        }
    }
//METODO QUE PERMITE BUSCAR LA O LAS ESPECIALIDADES QUE PUEDA TENER UN COLEGIADO.
    public String buscaColEsp(){
        try{
        colEsp = colEspDelegado.colegiadoEsp(colegiado.getSolCodigo());
        return null;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }

    }
//METODO QUE PERMITE BUSCAR EL CAPITULO AL QUE PERTENECE UN COLEGIADO.
    public String buscaEspCap(){
        try{
        espCap = espCapDelegado.espCapitulo(colEsp.getEcaCodigo().getEcaCodigo());
        return null;
        }catch(Exception ex){
            System.out.println(ex);
            return null;
        }
    }
//METODO QUE PERMITE BUSCAR LA FORMACION PROFESIONALQUE REGISTRO UN COLEGIADO.
    public String buscaTituloExtranjero(){

        try {
             formacion = new FormacionProfesional();
             formacion = delegadoFormacion.buscaTitulo(personaNatural.getSolCodigo());
             if(formacion == null){
                 formacion = new FormacionProfesional();
             }
             return null;
        } catch (Exception e) {
            return null;
        }

    }
//METODO QUE PERMITE BUSCAR LA DIRECCION QUE PUEDA TENER UN COLEGIADO.
//OBTENIENDO TAMBIEN EL DEPARTAMENTO Y PROVINCIA.
    public String buscaDireccion(){

       try {
            Integer provincia;
            Integer dpto;

            direccion = delegadoDireccion.buscaDireccionColegiado(colegiado.getSolCodigo());
            if(direccion == null){
                direccion = new DireccionPersona();
            }
            if(direccion != null){

                provincia = direccion.getDisCodigo().getProCodigo().getProCodigo();
                dpto = direccion.getDisCodigo().getProCodigo().getDepCodigo().getDepCodigo();

    //            distritoController dis = (distritoController) ControladorAbstracto.getBean("distritoController");
    //            dis.buscaProvincia(provincia);
    //
    //            provinciaController pro = (provinciaController) ControladorAbstracto.getBean("provinciaController");
    //            pro.buscaPorCodigoDpto(dpto);
            }
            return null;
        } catch (Exception e) {
             return null;
        }
    }
//METODO QUE PERMITE BUSCAR LA ESPECIALIDAD QUE PUEDA TENER UN COLEGIADO.
    public String buscaEspecialidad(){

        especialidad = delegadoEspecialidad.buscaEspecialidad(formacion.getEspCodigo().getEspCodigo());
//        buscaEscuela();
        return null;
    }
/*METODOS QUE DEJARON DE UTILIZARSE
    public String buscaEscuela(){
        buscaEspecialidad();
        escuela = delegadoEscuela.buscaEscuela(especialidad.getEscuela().getEscCodigo());
//        buscaFacultad();
        return null;
    }

    public String buscaFacultad(){
        buscaEscuela();
        facultad = delegadoFacultad.buscaFacultad(escuela.getFacultad().getFacCodigo());
//        buscaUniversidad();
        return null;
    }

    public String buscaUniversidad(){
//        buscaFacultad();
        universidad = delegadoUniversidad.buscaUniversidad(facultad.getUniversidad().getUniCodigo());
        return null;
    }
*/
//METODO QUE  DEVUELVE LOS TELEFONOS QUE TENGA UN COLEGIADO
    public List<TelefonoSolicitante> getListaTelefonos(){

        return delegadoTelefono.listaTelefonoColegiado(personaNatural.getSolCodigo());
    }

//METODO QUE PERMITE AGREGAR MAS TELEFONOS PARA UN COLEGIADO

    public String agregarTelefono(){

        try{
            telefono.setSolCodigo(colegiado.getPersonaNatural());
            delegadoTelefono.create(telefono);
            telefono = new TelefonoSolicitante();
            getListaTelefonos();
            return null;
        }catch(Exception ex){
            return null;
        }
    }
//METODO QUE PERMITE ELIMINAR EL REGISTRO DE UN TELEFONO DE UN COLEGIADO.
    public String eliminaTelefono(){

        try{
            delegadoTelefono.remove(telefono);
            telefono = new TelefonoSolicitante();
            getListaTelefonos();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public List<VinculoColegiado> getListaVinculos(){

        return delegadoVinculo.listaVinculos(colegiado.getSolCodigo());
    }

    public String agregarVinculo(){

        try{
            if(vinculo.getVintipoVinculo().compareTo("Hijo")==0){
                vinculo.setColCodigo(colegiado);
                vinculo.setVinVive(true);
                vinculo.setVinEstado(true);
                delegadoVinculo.create(vinculo);

            vinculo = new VinculoColegiado();
            }else{
                vinculo.setColCodigo(colegiado);
                delegadoVinculo.create(vinculo);
                vinculo = new VinculoColegiado();
            }

            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String cambiaEstadoVin(){

        try{
          if(vinculo.getVinEstado()==true){
            vinculo.setVinEstado(false);
            delegadoVinculo.edit(vinculo);
            vinculo = new VinculoColegiado();
          }else{
            vinculo.setVinEstado(true);
            delegadoVinculo.edit(vinculo);
            vinculo = new VinculoColegiado();
          }
          return null;
        }catch(Exception ex){
            return null;
        }
    }

    //ELIMINAR UN VINCULO

    public String eliminaVinculo(){
        try{
            delegadoVinculo.remove(vinculo);
            vinculo = new VinculoColegiado();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    //EDITAR UN VINCULO

    public String editarVinculo(){

        try {
            delegadoVinculo.edit(vinculo);
            vinculo = new VinculoColegiado();
            boton = false;
        return null;
        } catch (Exception e) {
            return null;
        }
    }

    public String cambiaBoton(){

       if(boton==false){
          boton = true;
       }else{
           boton = false;
       }
        return null;
    }
//Estudios Colegiado
    public List<EstudioColegiado> getListaEstudio(){

        return delegadoEstudioColegiado.listaEstudioColegiado(colegiado.getSolCodigo());
    }

    public String agregarEstudio(){

        try{
            estudioColegiado.setColCodigo(colegiado);
            delegadoEstudioColegiado.create(estudioColegiado);
            estudioColegiado = new EstudioColegiado();
            getListaEstudio();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String eliminaEstudio(){

        try{
            delegadoEstudioColegiado.remove(estudioColegiado);
            estudioColegiado = new EstudioColegiado();
            getListaEstudio();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    //especilista

    public List<Especialista> getListaEspecilista(){

        return delegadoEspecialista.listaEspColegiado(colegiado.getSolCodigo());
    }

    public String agregarEspecilista(){

        try {
            especialista.setColCodigo(colegiado);
            delegadoEspecialista.create(especialista);
            especialista = new Especialista();
            getListaEspecilista();
            return null;
        } catch (Exception e) {
            return null;
        }
    }

    public String eliminaEspColegiado(){

        try {
             delegadoEspecialista.remove(especialista);
             especialista = new Especialista();
             getListaEspecilista();
             return null;
        } catch (Exception e) {
            return null;
        }
    }
//crear experiencia laboral del colegiado

    public String agregaExpLaboral2(){

        try{
            delegadoJuridico.create(perJuridica);

            experiencia.setColCodigo(colegiado);
            experiencia.setEmpCodigo(perJuridica);
            delegadoExperiencia.create(experiencia);
            experiencia = new ExperienciaLaboral();
            estado = false;
            getListaExpColegiado();
            return null;
        }catch(Exception ex){
            return null;
        }

    }
     public String agregaExpLaboral(){

         try {
              experiencia.setColCodigo(colegiado);
              delegadoExperiencia.create(experiencia);
              experiencia = new ExperienciaLaboral();
              getListaExpColegiado();
              return null;
         } catch (Exception ex) {
             return null;
         }
       
    }

    public List<ExperienciaLaboral> getListaExpColegiado(){

        return delegadoExperiencia.listaExpColegiado(colegiado.getSolCodigo());
    }

    public String eliminarExpColegiado(){

        try {
            delegadoExperiencia.remove(experiencia);
            experiencia = new ExperienciaLaboral();
            getListaExpColegiado();
            return null;
        } catch (Exception ex) {
            return null;
        }
    }

    //registrar colegiadoDeporte

    public String regColegiadoDeporte(){

        try {
            colegiadoDeporte.setColCodigo(colegiado);
            delegadoColegiadoDeporte.create(colegiadoDeporte);
            colegiadoDeporte = new ColegiadoDeporte();
            getListaColegiadoDep();
            return null;
        } catch (Exception ex) {
            return null;
        }

    }

    public List<ColegiadoDeporte> getListaColegiadoDep(){

        return delegadoColegiadoDeporte.listaColDeporte(colegiado.getSolCodigo());
    }

    public String eliminaDeporte(){

        try{
            delegadoColegiadoDeporte.remove(colegiadoDeporte);
            colegiadoDeporte = new ColegiadoDeporte();
            getListaColegiadoDep();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String cambiaEstado(){
        
       if(estado==false){
        estado=true;
        id="laboral";
        return null;
       }else{
           estado=false;
           id= "laboral";
           return "estado";
       }
    }

    public String nuevo(){

        return "actualiza";
    }

    public String inicializa(){

        colegiado = new Colegiado();
        perJuridica =  new PersonaJuridica();
        formacion = new FormacionProfesional();
        experiencia = new ExperienciaLaboral();
        telefono = new TelefonoSolicitante();
        celular = new TelefonoSolicitante();
        telefonoemp = new TelefonoSolicitante();
        direccion = new DireccionPersona();        
        colEsp = new ColegiadoEspecialidad();
        espCap = new EspecialidadCapitulo();
        titulo = new Titulo();
        especialidad = new Especialidad();
        escuela = new Escuela();
        facultad = new Facultad();
        universidad = new Universidad();
        vinculo = new VinculoColegiado();
        estudioColegiado = new EstudioColegiado();
        especialista = new Especialista();       
        colegiadoDeporte = new ColegiadoDeporte();
        colImagen = new ColegiadoImagen();
        tipoImagen = new TipoImagen();
        especial = new Especialidad();
        personaNatural = new PersonaNatural();
        curriculum = new ColegiadoImagen();
        personaNatural = new PersonaNatural();
        listaPersonasFotos = new ArrayList<PersonaNatural>();

        dirCV = "/modulos/colegiatura/archivos/curriculum/";
//        dirCV = "D:\\Archivos\\cv\\";
        bandera = false;
        boton = false;
        cv = false;
        activo = false;
        noHallado = false;
        codigoCip = "";

        return null;
        
    }

    public String cerrarVentana(){

        inicializa();
        return null;
    }
    //actualizar datos del colegiado
    public String actualiza(){

        try{
            delegadoColegiado.edit(colegiado);
            delegadoPersonaNatural.edit(personaNatural);
            direccion.setSolCodigo(colegiado.getPersonaNatural());
            delegadoDireccion.edit(direccion);

    //        titulo = delegadoTitulo.find(titCodigo);
    //        formacion.setTitulo(titulo);
            formacion.setColegiado(colegiado);
            delegadoFormacion.edit(formacion);
    //        id="Personal";
    //        validarCodigo();
            inicializa();
            id = "Personal";
            bandera = false;
            return "mensaje";
        }catch(Exception ex){
            return null;
        }
    }

        public String actualizaColegiadoWeb(){

            try{
                delegadoColegiado.edit(colegiado);
                delegadoPersonaNatural.edit(personaNatural);
                direccion.setSolCodigo(colegiado.getPersonaNatural());
                delegadoDireccion.edit(direccion);

        //        titulo = delegadoTitulo.find(titCodigo);
        //        formacion.setTitulo(titulo);
                formacion.setColegiado(colegiado);
                delegadoFormacion.edit(formacion);
        //        id="Personal";
                validarCodigo();

                return null;
            }catch(Exception ex){
                return null;
            }
    }

    public String validarCodigo(){

        CodeGeneratorController control = (CodeGeneratorController) ControladorAbstracto.getBean("CodeGeneratorController");
        String codigoGenerado = control.getCodigoGenerado();
//        String destino;
        if(genCodigo.equals(codigoGenerado)){
            bandera = false;
            return "mensaje";
        }else{
            activo = true;
            genCodigo = "";
            return null;
        }      
    }

    public String validaCodigo(){

        validarCodigo();
        inicializa();
        id="Personal";
        return "mensaje";
    }

    public String retornarActualizar(){
        return "retornar";
    }


    // subir archivo

    private UploadedFile upFile;
    boolean rendSuccess = false;
    boolean rendFailure = false;
    private String imagen;

    public boolean isRendFailure() {
        return rendFailure;
    }

    public void setRendFailure(boolean rendFailure) {
        this.rendFailure = rendFailure;
    }

    public boolean isRendSuccess() {
        return rendSuccess;
    }

    public void setRendSuccess(boolean rendSuccess) {
        this.rendSuccess = rendSuccess;
    }

    public UploadedFile getUpFile() {
        return upFile;
    }

    public void setUpFile(UploadedFile upFile) {
        this.upFile = upFile;
    }

    public String getImagen() {
        return imagen;
    }

    public void setImagen(String imagen) {
        this.imagen = imagen;
    }


    public String upload() throws IOException {
       
        String extension;
        try {

                extension = upFile.getName().substring(upFile.getName().length()-4,upFile.getName().length());
                InputStream stream = upFile.getInputStream();
                dirCV = dirCV.concat(colegiado.getPersonaNatural().getPerNroDNI().concat(extension));
                OutputStream out=new FileOutputStream(dirCV);
                long size = upFile.getSize();
                byte[] buffer = new byte[(int) size];
                stream.read(buffer, 0, (int) size);
                out.write(buffer, 0, (int) size);
                stream.close();
                out.close();
                guardaCV();
                rendSuccess = true;
                rendFailure = false;
//                setImagen(upFile.getName());
                System.out.println("File Upload Successful.");
                cv =  true;
                return "ok";

        } catch (Exception ioe) {
            System.out.println("File Upload Unsuccessful.");
            System.out.println("errorrrr" + ioe.toString());
            rendSuccess = false;
            rendFailure = true;
            return "no";
        }
    }

    public String guardaCV(){

        try{
            tipoImagen.setTimCodigo(7);
            colImagen.setColCodigo(colegiado);
            colImagen.setTimCodigo(tipoImagen);
            colImagen.setCimRuta(dirCV);
            colImagen.setCimFechaRegistro(new Date());
            delegadoImagen.create(colImagen);
    //        dirCV = "D:\\Archivos\\cv\\";
            colImagen = new ColegiadoImagen();
            dirCV = "/modulos/colegiatura/archivos/curriculum/";
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String verCV(){

        buscaCV();
        try{
         Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+curriculum.getCimRuta());
        }catch(Exception ex){
         ex.printStackTrace();
        }
        return null;
    }

    public String mostrarCV() {
        try {
            File file = new File(curriculum.getCimRuta());
            FacesContext fcontext = FacesContext.getCurrentInstance();
            ExternalContext eContext = fcontext.getExternalContext();
            HttpServletResponse response = (HttpServletResponse) eContext.getResponse();
            response.setHeader("Content-Disposition", "inline; filename=" + file.getName());
            response.setHeader("Cache-Control", "public");
            response.setContentType("application/" + curriculum.getAplication());
            OutputStream os = response.getOutputStream();
            FileInputStream inputStream = new FileInputStream(file);
            int tamanoInput = inputStream.available();
            byte[] datosPDF = new byte[tamanoInput];
            inputStream.read(datosPDF, 0, tamanoInput);
            os.write(datosPDF, 0, tamanoInput);
            os.close();
            fcontext.responseComplete();

        } catch (Exception e) {
            return "";
        }
        return "";
    }

    public String buscaCV(){

        try{
            curriculum = delegadoImagen.buscaCV(colegiado.getSolCodigo());
            if(curriculum!=null){
               cv = true;
            }else{
                cv = false;
            }
            return null;
        }catch(Exception ex){
            return null;
        }
    }
    
    public String eliminaCV(){
        
        try {
            colImagen = delegadoImagen.buscaCV(colegiado.getSolCodigo());
            delegadoImagen.remove(colImagen);
            colImagen = new ColegiadoImagen();
            cv = false;
            return null;
        } catch (Exception e) {
            return null;
        }
    }

    //AGREGAR UNA NUEVA ESPECIALIDAD

    public String nuevaEspecialidad(){

        universidad = new Universidad();
        facultad = new Facultad();
        escuela = new Escuela();
        especial = new Especialidad();
        
        return "nuevaEspecialidad";
    }

    public String agregaEspecialidad(){

        try{
            ColegiadoEspecialidad colEsp1;
            colEsp1 = new ColegiadoEspecialidad();

            colEsp1  = colEspDelegado.colegiadoEsp(colegiado.getSolCodigo());
            Integer codigoEsp = colEsp1.getEcaCodigo().getEspCodigo().getEspCodigo();

            Integer codigoEsp2 = especial.getEspCodigo();

            if(codigoEsp != codigoEsp2){

                espCap2= new EspecialidadCapitulo();
                colEsp2 = new ColegiadoEspecialidad();
                espCap2 = delegadoEspCap.devuelveCapitulo(especial.getEspCodigo());

                colEsp2.setColCodigo(colegiado);
                colEsp2.setEcaCodigo(espCap2);
                colEsp2.setCesActivo(true);
                colEsp2.setCesPrioridad(false);
                colEspDelegado.create(colEsp2);

                espCap2 = new EspecialidadCapitulo();
                colEsp2 = new ColegiadoEspecialidad();
                universidad = new Universidad();
                especial = new Especialidad();
                getListaColESp();
                mostrarMensaje("Exito", "Especialidad registrada...", FacesMessage.SEVERITY_INFO);
                
            }else{
                espCap2 = new EspecialidadCapitulo();
                colEsp2 = new ColegiadoEspecialidad();
                universidad = new Universidad();
                especial = new Especialidad();
                getListaColESp();
                mostrarMensaje("Error", "La Especialidad ya esta registrada...", FacesMessage.SEVERITY_ERROR);
            }

            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String retornar(){

        id = "Formacion";
        return "retornar";
    }

    public List<ColegiadoEspecialidad> getListaColESp(){

        listaColeEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColeEspecialidad = colEspDelegado.listaEspColegiado(colegiado.getSolCodigo());
        return listaColeEspecialidad;
    }

     //BUSCAMOS UN COLEGIADO POR NOMBRES, APELLIDO PATERNO, APELLIDO MATERNO

    public String buscarColegiado(){

        try{
            ruc = "";
            soloColegiados = true;
            ColegiadoImagen foto = new ColegiadoImagen();
//            personaNatural = new PersonaNatural();
            listaPersonasFotos = new ArrayList<PersonaNatural>();
            listaPersonas = new ArrayList<PersonaNatural>();
            listaPersonas = delegadoSolicitante.buscarPerNatural(dni, apepat, apepat, nombre, ruc, soloColegiados);
            if(listaPersonas.size()>0){
                for(PersonaNatural per : listaPersonas ){

                    Long codigoPer = per.getSolCodigo();
                    foto = delegadoImagen.buscaFoto(codigoPer);
                    if(foto != null) {
                       per.setFoto(foto);
                    }
                    listaPersonasFotos.add(per);
                }
                dni = "";
                apepat = "";
                apemat ="";
                nombre = "";
        }else{
            noHallado = true;
        }
         return null;
        }catch(Exception ex){

            return null;
        }
        
    }

    public void drawImagenListaFotos(OutputStream output, Object object) throws IOException{

        PersonaNatural person = new PersonaNatural();

        try {
             Integer index = new Integer(object.toString());
             person = listaPersonasFotos.get(index);
             File file = new File(person.getFoto().getCimRuta());
             FileInputStream inputStream = new FileInputStream(file);
             int tamañoInput = inputStream.available();
             byte[] datos = new byte[tamañoInput];
             inputStream.read(datos, 0, tamañoInput);
             output.write(datos, 0, tamañoInput);

        } catch (Exception e) {

        }
    }

    public String seleccionarColegiado(){

     try{
        colegiado = new Colegiado();
        perJuridica =  new PersonaJuridica();        
        formacion = new FormacionProfesional();
        experiencia = new ExperienciaLaboral();
        telefono = new TelefonoSolicitante();
        celular = new TelefonoSolicitante();
        telefonoemp = new TelefonoSolicitante();
        direccion = new DireccionPersona();
        colEsp = new ColegiadoEspecialidad();
        espCap = new EspecialidadCapitulo();
        titulo = new Titulo();
        especialidad = new Especialidad();
        escuela = new Escuela();
        facultad = new Facultad();
        universidad = new Universidad();
        vinculo = new VinculoColegiado();
        estudioColegiado = new EstudioColegiado();
        especialista = new Especialista();
        colegiadoDeporte = new ColegiadoDeporte();
        id = "Personal";
        codigoCip = "";
        colegiado = delegadoColegiado.buscaColegiado(personaNatural.getSolCodigo());

        if(colegiado.getTipoColegiado().getTcoCodigo() != 2 || colegiado.getTipoColegiado().getTcoCodigo() != 4){
           if(colegiado.getColfechaHabilidad()!= null){
               verHabilidad();
           }
        }
        colegiado = new Colegiado();
        colegiado = delegadoColegiado.buscaColegiado(personaNatural.getSolCodigo());
        if(colegiado.getTipoColegiado().getTcoCodigo()==3){
           buscaTituloExtranjero();
           buscaDireccion();
           getListaTelefonos();
           getListaColESp();
           return "ir_a_actualizar";
        }else{
             buscaColEsp();
             buscaDireccion();
             buscaTituloExtranjero();
//             buscaUniversidad();
             getListaTelefonos();
             getListaColESp();
             buscaCV();
             return "ir_a_actualizar";
            }
            
        }catch(Exception ex){

            return null;
        }

    }

    public String terminar(){

        inicializa();
        return "retornar";
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }

}
